import { defineStore } from 'pinia'
// Option Store：与 Vue 的选项式 API 类似，我们也可以传入一个带有 state、actions 与 
// getters 属性的 Option 对象
export const useCounterStore = defineStore('counter', {
  state: () => ({ count: 0, name: 'Eduardo' }),// 数据
  getters: {
    doubleCount: (state) => state.count * 2,
  },// 计算属性
  actions: {
    increment() {
      this.count++
    },
  },// 方法
})
// Setup Store：与 Vue 组合式 API 的 setup 函数 相似，我们可以传入一个函数，该函数定义了一
// 些响应式属性和方法，并且返回一个带有我们想暴露出去的属性和方法的对象。
export const useCounterStoreSetup = defineStore('counterSetup', () => {
  const count = ref(0)
  const name = ref('Eduardo')
  const doubleCount = computed(() => count.value * 2)
  function increment() {
    count.value++
  }
  return { count, name, doubleCount, increment }
})